<?php
/**
* 编码解码类
* 
* 目前包含html编码、适合url传输的base64编解码、文本编码转换三个功能
*/
class code
{
/**
* 格式化纯文本为html文本
* 
* 把纯文本格式化成可直接输出的html文本，包括进行html实体替换（&变&amp;等）、换行转<br/>等操作
* 
* 参数：
*     $str 欲转换的纯文本
*     $br 换行方式，可取的值：
*         false 不转义换行符（默认）
*         true 或 1 转成&#13;&#10;（在输入框里使用）
*         2 转成<br/>
*         其他值 转成指定的字符 
*     $NOnbsp 是否不把空格转换成&nbsp;
*         false 否，转换空格（默认）
*         true 是，不转换空格
* 
* 注：该函数可以自动根据$PAGE['bid']是否为'wml'来判断是否需要转码$为$$
*/
static function html($str,$br=false,$NOnbsp=false)
{
global $PAGE;
$str=htmlspecialchars($str,ENT_QUOTES,'utf-8');
if($br!==false)
{
if($br===true || $br==1) $br='&#13;&#10;';
elseif($br==2) $br='<br/>';
$str=str_replace(array("\r\n","\r","\n"),$br,$str);
}
if(!$NOnbsp)
 $str=str_replace(' ','&nbsp;',$str);
if($PAGE['bid']=='wml')
 $str=str_replace('$','$$',$str);
return $str;
}
    
/**
* 编码转换
* 
* 参数：
*     $text 欲转换的文本
*     $in 原编码
*     $out 转换后的编码
*/
static function conv($text,$in,$out)
{
if(function_exists('iconv'))
 {
$out.='//TRANSLIT//IGNORE';
return iconv($in,$out,$text);
 }
elseif(function_exists('mb_convert_encoding'))
 {
return mb_convert_encoding($text,$out,$in);
 }
else
 {
return $text;
 }
}
    
/**
* 适合url的base64编码
*/
function b64e($data) {
    return strtr(array('+','/','='), array('-','_','.'), base64_encode($data));
}
    
/**
* 适合url的base64解码
*/
function b64d($code) {
    return base64_decode(strtr(array('-','_','.'), array('+','/','='), $code));
}
    
/*code类结束*/
}
